import Vue from "vue";
import App from "./App.vue";

Vue.config.productionTip = false;

const role = "admin";

// 注册全局自定义指令
Vue.directive("role", {
  // 只调用一次，第一次绑定到元素时调用，在这里可以进行一次性的初始化设置（在这个函数中无法获取到父元素）
  bind(el, binding) {
    console.log("bind");
  },
  // 被绑定元素插入父节点调用（可以获取到父元素）
  inserted(el, binding) {
    console.log("inserted");
    if (binding.value !== role) {
      console.log("1", el);
      el.remove();
    }
  },
  // 所在组件的VNode更新时调用，但是可能发生在其子VNode更新之前
  update(el, binding) {
    console.log("update");
  },
  // componentUpdated:指令所在组件的VNode及其子VNode全部更新后调用
  componentUpdated(el, binding) {
    console.log("componentUpdated");
  },
  // unbind：只调用一次，指令与元素解绑时调用
  unbind(el, binding) {
    console.log("unbind");
  },
});

Vue.filter("add$", (value) => {
  return "￥" + value;
});

new Vue({
  render: (h) => h(App),
}).$mount("#app");
